www.gusucode.com > PHPBB轻型PHP论坛 含中文语言包 3.1.2PHP源码程序 > PHPBB轻型PHP论坛 含中文语言包 3.1.2/mandarin_chinese_(simplified_script)_1_0_4/phpBB3/vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Box.php
<?php namespace OAuth\OAuth2\Service; use OAuth\OAuth2\Token\StdOAuth2Token; use OAuth\Common\Http\Exception\TokenResponseException; use OAuth\Common\Http\Uri\Uri; use OAuth\Common\Consumer\Credentials; use OAuth\Common\Http\Client\ClientInterface; use OAuth\Common\Storage\TokenStorageInterface; use OAuth\Common\Http\Uri\UriInterface; /** * Box service. * * @author Antoine Corcy <contact@sbin.dk> * @link https://developers.box.com/oauth/ */ class Box extends AbstractService { public function __construct(Credentials $credentials, ClientInterface $httpClient, TokenStorageInterface $storage, $scopes = array(), UriInterface $baseApiUri = null) { parent::__construct($credentials, $httpClient, $storage, $scopes, $baseApiUri); if( null === $baseApiUri ) { $this->baseApiUri = new Uri('https://api.box.com/2.0/'); } } /** * @return \OAuth\Common\Http\Uri\UriInterface */ public function getAuthorizationEndpoint() { return new Uri('https://www.box.com/api/oauth2/authorize'); } /** * @return \OAuth\Common\Http\Uri\UriInterface */ public function getAccessTokenEndpoint() { return new Uri('https://www.box.com/api/oauth2/token'); } /** * Returns a class constant from ServiceInterface defining the authorization method used for the API * Header is the sane default. * * @return int */ protected function getAuthorizationMethod() { return static::AUTHORIZATION_METHOD_HEADER_BEARER; } /** * @param string $responseBody * @return \OAuth\Common\Token\TokenInterface|\OAuth\OAuth2\Token\StdOAuth2Token * @throws \OAuth\Common\Http\Exception\TokenResponseException */ protected function parseAccessTokenResponse($responseBody) { $data = json_decode( $responseBody, true ); if( null === $data || !is_array($data) ) { throw new TokenResponseException('Unable to parse response.'); } elseif( isset($data['error'] ) ) { throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"'); } $token = new StdOAuth2Token(); $token->setAccessToken( $data['access_token'] ); $token->setLifeTime( $data['expires_in'] ); if( isset($data['refresh_token'] ) ) { $token->setRefreshToken( $data['refresh_token'] ); unset($data['refresh_token']); } unset( $data['access_token'] ); unset( $data['expires_in'] ); $token->setExtraParams( $data ); return $token; } }